package main

import "fmt"

func main() {
	/*
		    golang中break语句
			· 用于跳出循环中的语句，并开始执行循环之后的语句
			· break在switch（开关语句）中执行一条case后跳出语句的作用
			· 在多重循环中，可以用标号 label标出想 break 的循环
	*/

	// 双重循环，用break只能跳出当前循环， 但是使用label: 标记，是可以完成跳出多成循环的效果的
label1:
	for i := 0; i < 10; i++ {
		for j := 0; j < 10; j++ {
			if j == 3 {
				break label1
			}
			fmt.Printf("i=%v j=%v\n", i, j)
		}
	}
	/*
	   i=0 j=0
	   i=0 j=1
	   i=0 j=2
	*/

	//break 跳出当前循环
	for i := 0; i < 10; i++ {
		if i == 3 {
			break
		}
		fmt.Printf("%d", i)
		/*  到3截止
		i=0 j=0
		i=0 j=1
		i=0 j=2
		*/
	}

	//continue 结束当前循环，开始下一次循环
	for i := 0; i < 10; i++ {
		if i == 3 {
			continue
		}
		fmt.Printf("%d", i) //012456789 跳过了3
	}

	//goto 语句通过标签进行代码间的无条件跳转，goto语句可以快速跳出循环，避免重复

	var n = 30
	if n > 20 {
		fmt.Println("成年人")
		goto test
	}

	fmt.Println("小屁孩")
	fmt.Println("hello world") // 跳过了这两行  直接到 how are you
test:
	fmt.Println("hello ,how are you")

}
